package com.bsj.travel.device.service;

import com.bsj.travel.def.common.DO.ProductTopicDO;
import com.bsj.travel.def.common.DTO.web.productTopic.ProductTopicDTO;
import com.bsj.travel.def.common.DTO.web.productTopic.ProductTopicSearchDTO;
import com.bsj.travel.def.common.VO.ProductTopicVO;
import com.bsj.travel.def.global.JsonResult;

import java.util.List;

/**
 * @author yinhao
 * @version 1.0
 * @description 产品主题信息
 * @date 2023/11/23
 */
public interface ProductTopicService {

    /**
     * 根据产品ID查询关联主题信息
     *
     * @param productId
     * @return
     */
    List<ProductTopicDO> queryTopicByProductId(Long productId);

    /**
     * 获取对应产品的所有主题数据
     *
     * @param productKey
     * @return
     */
    List<ProductTopicDO> getAllList(String productKey);

    /**
     * 添加主题
     *
     * @param productTopicDTO
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/1/19 11:09
     */
    JsonResult addProductTopic(ProductTopicDTO productTopicDTO);

    /**
     * 删除主题
     *
     * @param topicId
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/1/19 11:10
     */
    JsonResult deleteProductTopic(Long topicId);

    /**
     * 修改主题
     *
     * @param productTopicDTO
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/1/19 11:10
     */
    JsonResult updateProductTopic(ProductTopicDTO productTopicDTO);

    /**
     * 根据主题id获取主题信息
     *
     * @param topicId
     * @return com.bsj.travel.def.common.VO.ProductTopicVO
     * @author ljx
     * @time 2024/1/19 11:10
     */
    ProductTopicVO getProductTopicInfoById(Long topicId);

    /**
     * 主题列表
     *
     * @param productTopicSearchDTO
     * @return java.util.List < com.bsj.travel.def.common.VO.ProductTopicVO>
     * @author ljx
     * @time 2024/1/19 11:11
     */
    List<ProductTopicVO> listProductTopic(ProductTopicSearchDTO productTopicSearchDTO);

}
